package com.shuda.business.auth.service;

import com.shuda.common.dto.LoginDTO;
import com.shuda.common.dto.UserDTO;
import com.shuda.common.vo.LoginVO;
import com.shuda.common.vo.UserVO;

import java.util.List;

/**
 * 用户认证服务接口
 */
public interface AuthService {

    /**
     * 用户登录
     */
    LoginVO login(LoginDTO loginDTO);

    /**
     * 用户登出
     */
    Boolean logout(String token);

    /**
     * 刷新token
     */
    LoginVO refresh(String refreshToken);

    /**
     * 获取用户详情
     */
    UserVO getUserProfile(Long userId);

    /**
     * 更新用户信息
     */
    Boolean updateUserProfile(UserDTO userDTO);

    /**
     * 修改密码
     */
    Boolean changePassword(Long userId, String oldPassword, String newPassword);

    /**
     * 获取用户权限
     */
    List<String> getUserPermissions(Long userId);

    /**
     * 获取用户菜单
     */
    List<MenuVO> getUserMenus(Long userId);
}